package cn.lili.modules.email.service;

import cn.lili.modules.email.dto.EmailDTO;
import cn.lili.modules.verification.entity.enums.VerificationEnums;

/**
 * 邮箱接口
 *
 * @author moxingjian
 * @version 1.0
 * @date 2023-10-19 16:33
 * <p>
 * 版本更新：
 * 更新版本号    更新人      更新时间      更新内容
 */
public interface EmailService {

    /**
     * 发送邮箱验证码
     *
     * @param email 邮件
     * @param verificationEnums 验证类型
     * @param uuid UUID
     */
    void sendEmailCode(String email, VerificationEnums verificationEnums, String uuid);


    /**
     * 验证码验证
     *
     * @param email            邮箱
     * @param verificationEnums 验证码场景
     * @param uuid              用户标识uuid
     * @param code              待验证code
     * @return 操作状态
     */
    boolean verifyCode(String email, VerificationEnums verificationEnums, String uuid, String code);

    /**
     * 根据会员ID发送邮件
     * @param emailDTO 邮箱内容
     */
    void sendEmailByMemberId(EmailDTO emailDTO);

    /**
     * 根据StoreID发送邮件
     * @param emailDTO 邮箱内容
     */
    void sendEmailByStoreId(EmailDTO emailDTO);
}
